package net.tv90.volunteerserveradmin.utils;

import cn.dev33.satoken.secure.SaSecureUtil;
import org.apache.commons.lang3.StringUtils;

/**
 * SecurityUtils 类提供了密码加密和验证的相关工具方法。
 * 主要基于 SHA-256 算法实现密码的加密和匹配校验。
 */
public class SecurityUtils {

    /**
     * 校验密码是否匹配。
     *
     * @param target  旧密码的加密结果（数据库中存储的加密密码）
     * @param target2 用户输入的新密码（未加密的原始密码）
     * @return 是否匹配
     */
    public static boolean checkPw(String target, String target2) {
        String encryptedPassword = sha256Encrypt(target2);
        return StringUtils.equals(encryptedPassword, target);
    }

    /**
     * 使用 SHA-256 对密码进行加密。
     *
     * @param password 用户输入的原始密码
     * @return 加密后的密码
     */
    public static String sha256Encrypt(String password) {
        return SaSecureUtil.sha256(password);
    }

    public static void main(String[] args) {
        System.out.println(sha256Encrypt("admin"));
    }

}
